﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Skins;
using DevExpress.LookAndFeel;
using DevExpress.UserSkins;
using BussinessLayer;

namespace projectQLDV
{
    public partial class frmMain : DevExpress.XtraEditors.XtraForm
    {
        #region Khai báo
        private frmCaiDatCoBan frmCDCB;
        private frmChiDoan frmThemCD;
        private frmChiDoan frmCapNhatCD;
        private frmChucVu frmThemCV;
        private frmChucVu frmCapNhatCV;
        private frmChuyenSinhHoat frmChuyenSinhHoatDoan;
        private frmDiemThuongPhat frmThuongPhat;
        private frmDoanPhi frmThemDP;
        private frmDoanPhi frmCapNhatDP;
        private frmDoanVien frmThemDV;
        private frmDoanVien frmCapNhatDV;
        private frmDoiMatKhau frmDoiMatKhau;
        private frmHoatDong frmThemHD;
        private frmHoatDong frmCapNhatHD;
        private frmLopCamTinhDoan frmThemLCTD;
        private frmLopCamTinhDoan frmCapNhatLCTD;
        private frmTaoTaiKhoan frmTaoTaiKhoan;
        private frmThongKe frmThongKeDT;
        private frmThongKe frmThongKeKL;
        private frmThongKe frmThongKeCD;
        private frmXepLoaiChiDoan frmXepLoaiCD;
        private frmXepLoaiDoanVien frmXepLoaiDV;
        private frmDoanVienThamGiaHoatDong frmDVThamGiaHD;
        private frmXetLopCamTinhDoan frmDVThamGiaLCTD;
        private frmDoanVienNapDoanPhi frmDVNapDP;
        private frmCaiDatChucVu frmCaiDatCV;
        private frmKetQuaHocTap frmKQHT;

        public bool frmCDCB_isShown;
        public bool frmThemCD_isShown;
        public bool frmCapNhatCD_isShown;
        public bool frmThemCV_isShown;
        public bool frmCapNhatCV_isShown;
        public bool frmChuyenSinhHoatDoan_isShown;
        public bool frmThuongPhat_isShown;
        public bool frmThemDP_isShown;
        public bool frmCapNhatDP_isShown;
        public bool frmThemDV_isShown;
        public bool frmCapNhatDV_isShown;
        public bool frmDoiMatKhau_isShown;
        public bool frmThemHD_isShown;
        public bool frmCapNhatHD_isShown;
        public bool frmThemLCTD_isShown;
        public bool frmCapNhatLCTD_isShown;
        public bool frmTaoTaiKhoan_isShown;
        public bool frmThongKeDT_isShown;
        public bool frmThongKeKL_isShown;
        public bool frmThongKeCD_isShown;
        public bool frmXepLoaiCD_isShown;
        public bool frmXepLoaiDV_isShown;
        public bool frmDVThamGiaHD_isShown;
        public bool frmDVThamGiaLCTD_isShown;
        public bool frmDVNapDP_isShown;
        public bool frmCaiDatCV_isShown;
        public bool frmKQHT_isShown;

        public string chucvuid;
        public string _chucvuten;
        public string _chucvumieuta;
        public string _nguoidungTaikhoan;
        public string _hoatdongid;
        public string _hoatdongten;
        public string _hoatdongThoigian;
        public string _hoatdongcap;
        public string _hoatdongnoidung;
        public string _hoatdongbatbuoc;
        public string _hoatdonghocki;
        public string _hoatdongnamhoc;

        tblChucvu cv = new tblChucvu();
        tblTaikhoan tk = new tblTaikhoan();
        tblhoatdong hd = new tblhoatdong();
        tbldoanphi dp = new tbldoanphi();
        tbldoanvien_hoatdong dv_hd = new tbldoanvien_hoatdong();
        tblHocsinh_giaovien hs_gv = new tblHocsinh_giaovien();
        tblchidoan cd = new tblchidoan();
        #endregion

        #region Hàm Main
        public frmMain()
        {
            InitializeComponent();
            frmCDCB_isShown = false;
            frmThemCD_isShown = false;
            frmCapNhatCD_isShown = false;
            frmThemCV_isShown = false;
            frmCapNhatCV_isShown = false;
            frmChuyenSinhHoatDoan_isShown = false;
            frmThuongPhat_isShown = false;
            frmThemDP_isShown = false;
            frmCapNhatDP_isShown = false;
            frmThemDV_isShown = false;
            frmCapNhatDV_isShown = false;
            frmDoiMatKhau_isShown = false;
            frmThemHD_isShown = false;
            frmCapNhatHD_isShown = false;
            frmThemLCTD_isShown = false;
            frmCapNhatLCTD_isShown = false;
            frmTaoTaiKhoan_isShown = false;
            frmThongKeDT_isShown = false;
            frmThongKeKL_isShown = false;
            frmThongKeCD_isShown = false;
            frmXepLoaiCD_isShown = false;
            frmXepLoaiDV_isShown = false;
            frmDVThamGiaHD_isShown = false;
            frmDVThamGiaLCTD_isShown = false;
            frmDVNapDP_isShown = false;
            frmCaiDatCV_isShown = false;
            frmKQHT_isShown = false;

            GridViewChucvu();
            GridViewTaiKhoan();
            //GridViewHoatdong();
            GridViewDoanphi();
            //GridViewdoanvien("2011-2012");

            formLoad();
        }
        #endregion

        #region formLoad
        private void formLoad()
        {
            int cnt = this.xtraTabMain.TabPages.Count;
            for (int i = 0; i < cnt; i++)
                this.xtraTabMain.TabPages[i].PageVisible = false;
            this.xtraTabDoanVien.PageVisible = true;
        }
        #endregion

        #region code để tạm chưa đúng vị trí, sau khi code xong thì bỏ vào các region dưới
        //Thêm Đoàn viên mới vào danh sách Đoàn viên
        private void btnThemDV_Click(object sender, EventArgs e)
        {
            if (!frmThemDV_isShown)
            {
                frmThemDV = new frmDoanVien(this, this.comboBoxNamdoanvien.Text);
                frmThemDV.Text = "Thêm Đoàn viên mới";
                frmThemDV_isShown = true;
                frmThemDV.Show();
            }
            else
            {
                frmThemDV.Select();
            }
        }

        //Cập nhật thông tin Đoàn viên
        private void btnCapNhatDV_Click(object sender, EventArgs e)
        {
            if (!frmCapNhatDV_isShown)
            {
                int[] dv = this.gridViewDoanVien.GetSelectedRows();
                if (dv.Length > 0)
                {
                    frmCapNhatDV = new frmDoanVien(this, int.Parse(dv[0].ToString()), this.comboBoxNamdoanvien.Text);
                    frmCapNhatDV.Text = "Cập nhật thông tin Đoàn viên";
                    frmCapNhatDV_isShown = true;
                    frmCapNhatDV.Show();
                }
            }
            else
            {
                frmCapNhatDV.Select();
            }
        }

        //Cập nhật Đoàn viên tham gia hoạt động Đoàn
        private void btnCapNhatDVThamGiaHD_Click(object sender, EventArgs e)
        {
            if (!frmDVThamGiaHD_isShown)
            {
                frmDVThamGiaHD = new frmDoanVienThamGiaHoatDong(this);
                frmDVThamGiaHD_isShown = true;
                frmDVThamGiaHD.Show();
            }
            else
            {
                frmDVThamGiaHD.Select();

            }
        }

        //Xét Đoàn viên tham gia lớp cảm tình đoàn
        private void btnXetDVThamGiaLCTD_Click(object sender, EventArgs e)
        {
            if (!frmDVThamGiaLCTD_isShown)
            {
                int index = this.gridViewLCTD.GetSelectedRows()[0];
                int id = int.Parse(this.gridViewLCTD.GetRowCellValue(index, "lopcamtinhdoan_id").ToString());
                DateTime d = DateTime.Parse(this.gridViewLCTD.GetRowCellValue(index, "ngaytochuc").ToString()).Date;
                frmDVThamGiaLCTD = new frmXetLopCamTinhDoan(this, id, d);
                frmDVThamGiaLCTD_isShown = true;
                frmDVThamGiaLCTD.Show();
            }
            else
            {
                frmDVThamGiaLCTD.Select();
            }
        }

        //Đoàn viên nạp đoàn phí
        private void btnDVNapDoanPhi_Click(object sender, EventArgs e)
        {
            if (!frmDVNapDP_isShown)
            {
                int rowselected = int.Parse(this.gridViewDoanPhi.GetSelectedRows()[0].ToString());
                frmDVNapDP = new frmDoanVienNapDoanPhi(this, int.Parse(this.gridViewDoanPhi.GetRowCellValue(rowselected,"doanphi_id").ToString()), int.Parse(this.gridViewDoanPhi.GetRowCellValue(rowselected, "thang").ToString()), int.Parse(this.gridViewDoanPhi.GetRowCellValue(rowselected, "nam").ToString()));
                frmDVNapDP_isShown = true;
                frmDVNapDP.Show();
            }
            else
            {
                frmDVNapDP.Select();
            }
        }
        #endregion

        #region Quản lý đoàn
        //hiện tab đoàn viên
        private void itemDoanVien_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabDoanVien.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabDoanVien;
            loadYear(this.comboBoxNamdoanvien);
        }

        private void itemChucVu_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabChucVu.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabChucVu;

        }

        private void itemHoatDong_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabHoatDong.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabHoatDong;
            loadYear(this.comboBoxNamhocHD);
        }

        private void itemDoanPhi_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabDoanPhi.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabDoanPhi;
            loadYear(this.comboBoxNamHocDP);
        }

        private void itemLopCamTinhDoan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabLopCamTinhDoan.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabLopCamTinhDoan;
            loadYear(this.comboBoxNamHocLCTD);
            GridViewLopCamTinhDoan();
        }

        private void itemKetQuaHocTap_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmKQHT_isShown)
            {
                frmKQHT = new frmKetQuaHocTap(this);
                frmKQHT_isShown = true;
                frmKQHT.Show();
            }
            else
            {
                frmKQHT.Select();
            }
        }
        #endregion

        #region Hệ thống
        //Hệ thống
        private void itemDanhSachTaiKhoan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabTaiKhoan.PageVisible = true;
            this.xtraTabMain.SelectedTabPage = this.xtraTabTaiKhoan;
            GridViewTaiKhoan();
        }

        private void itemCaiDatCoBan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmCDCB_isShown)
            {
                frmCDCB = new frmCaiDatCoBan(this);
                frmCDCB_isShown = true;
                frmCDCB.Show();
            }
            else
            {
                frmCDCB.Select();
            }
        }

        private void itemThoat_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            Application.Exit();
        }

        public void GridViewTaiKhoan()
        {
            DataTable dtAccount = new DataTable();
            dtAccount = tk.SelectNguoidung();
            dtAccount.Columns.Add("index", typeof(int));
            this.gridControlTaiKhoan.DataSource = dtAccount;
            for (int i = 0; i < gridViewTaiKhoan.RowCount; i++)
            {
                this.gridViewTaiKhoan.SetRowCellValue(i, "index", i + 1);
            }
        }

        private void btnThemTK_Click(object sender, EventArgs e)
        {
            if (!frmTaoTaiKhoan_isShown)
            {
                frmTaoTaiKhoan = new frmTaoTaiKhoan(this);
                frmTaoTaiKhoan_isShown = true;
                frmTaoTaiKhoan.Show();

            }
            else
            {
                frmTaoTaiKhoan.Select();
            }
        }

        private void gridViewTaiKhoan_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            if (e.RowHandle >= 0)
            {
                this._nguoidungTaikhoan = this.gridViewTaiKhoan.GetRowCellValue(e.RowHandle, "taikhoan").ToString().Trim();
                btnKhoaTK.Enabled = true;
                btnDoiMatKhau.Enabled = true;
            }
            else
            {
                btnKhoaTK.Enabled = false;
                btnDoiMatKhau.Enabled = false;
            }

        }

        private void btnKhoaTK_Click(object sender, EventArgs e)
        {
            
            string nd = "";
            if(this.gridViewTaiKhoan.GetSelectedRows().Length > 0)
                nd = this.gridViewTaiKhoan.GetRowCellValue(this.gridViewTaiKhoan.GetSelectedRows()[0], "taikhoan").ToString().Trim();
            if (nd != "")
            {
                DialogResult rs = DevExpress.XtraEditors.XtraMessageBox.Show("Bạn thật sự muốn khóa tài khoản " + nd + " ?", "Xác nhận", MessageBoxButtons.OKCancel);
                if (rs == DialogResult.OK)
                {
                    //update trạng thai
                    try
                    {
                        tk.updateTrangThai(nd, false);
                        GridViewTaiKhoan();
                        btnKhoaTK.Enabled = false;
                    }
                    catch (Exception ex)
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show("Error: " + ex.Message);
                    }
                }
            }
        }

        private void btnDoiMatKhau_Click(object sender, EventArgs e)
        {
            if (!frmDoiMatKhau_isShown)
            {
                frmDoiMatKhau = new frmDoiMatKhau(this, _nguoidungTaikhoan);
                frmDoiMatKhau_isShown = true;
                frmDoiMatKhau.Show();
            }
            else
            {
                frmDoiMatKhau.Select();
            }
        }
        #endregion

        #region Thống kê
        //Thống kê
        private void itemTheoDoanTruong_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmThongKeDT_isShown)
            {
                frmThongKeDT = new frmThongKe();
                frmThongKeDT.Text = "Thống kê theo Đoàn trường";
                frmThongKeDT_isShown = true;
                frmThongKeDT.Show();
            }
            else
            {
                frmThongKeDT.Select();
            }
        }

        private void itemTheoKhoiLop_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmThongKeKL_isShown)
            {
                frmThongKeKL = new frmThongKe();
                frmThongKeKL.Text = "Thống kê theo Khối lớp";
                frmThongKeKL_isShown = true;
                frmThongKeKL.Show();
            }
            else
            {
                frmThongKeKL.Select();
            }
        }

        private void itemTheoChiDoan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmThongKeCD_isShown)
            {
                frmThongKeCD = new frmThongKe();
                frmThongKeCD.Text = "Thống kê theo Chi đoàn";
                frmThongKeCD_isShown = true;
                frmThongKeCD.Show();
            }
            else
            {
                frmThongKeCD.Select();
            }
        }
        #endregion

        #region Đánh giá - Xếp loại
        //Đánh giá - Xếp loại
        private void itemDanhGiaDoanVien_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmXepLoaiDV_isShown)
            {
                frmXepLoaiDV = new frmXepLoaiDoanVien(this);
                frmXepLoaiDV_isShown = true;
                frmXepLoaiDV.Show();
            }
            else
            {
                frmXepLoaiDV.Select();
            }
        }

        private void itemDanhGiaChiDoan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            if (!frmXepLoaiCD_isShown)
            {
                frmXepLoaiCD = new frmXepLoaiChiDoan();
                frmXepLoaiCD_isShown = true;
                frmXepLoaiCD.Show();
            }
            else
            {
                frmXepLoaiCD.Select();
            }
        }
        #endregion

        #region Chức vụ

        public void GridViewChucvu()
        {
            DataTable dtAccount = new DataTable();
            dtAccount = cv.SelectChucvu();
            dtAccount.Columns.Add("index", typeof(int));
            this.gridControlchucvu.DataSource = dtAccount;
            for (int i = 0; i < this.gridViewChucVu.RowCount; i++)
            {
                this.gridViewChucVu.SetRowCellValue(i, "index", i + 1);
            }
        }

        private void btnThemCV_Click(object sender, EventArgs e)
        {
            if (!frmThemCV_isShown)
            {
                frmThemCV = new frmChucVu(this);
                frmThemCV_isShown = true;
                frmThemCV.Show();

            }
            else
            {
                frmThemCV.Select();
            }
        }


        private void btnCapNhatCV_Click(object sender, EventArgs e)
        {
            if (!frmCapNhatCV_isShown)
            {
                int temp = Int16.Parse(this.chucvuid);
                frmCapNhatCV = new frmChucVu(this, temp, _chucvuten, _chucvumieuta);
                frmCapNhatCV.Text = "Cập nhật thông tin chức vụ";
                frmCapNhatCV_isShown = true;
                frmCapNhatCV.Show();
            }
            else
            {
                frmCapNhatCV.Select();
            }
        }

        private void gridViewChucVu_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            if (e.RowHandle >= 0)
            {
                this.chucvuid = this.gridViewChucVu.GetRowCellValue(e.RowHandle, "chucvu_id").ToString().Trim();
                this._chucvuten = this.gridViewChucVu.GetRowCellValue(e.RowHandle, "chucvu_ten").ToString().Trim();
                this._chucvumieuta = this.gridViewChucVu.GetRowCellValue(e.RowHandle, "chucvu_mieuta").ToString().Trim();
                btnCapNhatCV.Enabled = true;
                btnXoaCV.Enabled = true;

            }
            else
            {
                this.chucvuid = "";
                btnCapNhatCV.Enabled = false;
                btnXoaCV.Enabled = false;

            }
        }

        private void btnXoaCV_Click(object sender, EventArgs e)
        {
            DialogResult rs = MessageBox.Show("Không sử dụng chức vụ này ???", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (rs == DialogResult.Yes)
            {
                cv.Updatetinhtrang(chucvuid, false);
                GridViewChucvu();
            }
            else
            {
                GridViewChucvu();
            }
        }
        #endregion


        private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }

        private void btnThemHD_Click(object sender, EventArgs e)
        {
            if (!frmThemHD_isShown)
            {
                frmThemHD = new frmHoatDong(this);
                frmThemHD_isShown = true;
                frmThemHD.Show();

            }
            else
            {
                frmThemHD.Select();
            }
        }

        public void GridViewHoatdong(string namhoc)
        {
            DataTable dt = new DataTable();
            dt = hd.SelectHDTrongNamHoc(namhoc);
            dt.Columns.Add("index", typeof(int));
            for (int i = 0; i < this.gridViewHoatDong.RowCount; i++)
            {
                this.gridViewHoatDong.SetRowCellValue(i, "index", i + 1);
            }
            this.gridControlHoatDong.DataSource = dt;
        }


        private string checkTaikhoan(string u)
        {
            DataTable dt = new DataTable();
            dt = dv_hd.checkhoatdong(Int16.Parse(u));
            if (dt.Rows.Count > 0)
            {
                DataRow r = dt.Rows[0];
                return r["id"].ToString().Trim();
            }
            else return "";

        }


        private void gridViewHoatDong_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            if (e.RowHandle >= 0)
            {
                this._hoatdongid = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_id").ToString().Trim();
                this._hoatdongten = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_ten").ToString().Trim();
                this._hoatdongThoigian = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_thoigian").ToString().Trim();
                this._hoatdongcap = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_cap").ToString().Trim();
                this._hoatdongnoidung = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_noidung").ToString().Trim();
                this._hoatdongbatbuoc = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_batbuoc").ToString().Trim();
                this._hoatdonghocki = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_hocki").ToString().Trim();
                this._hoatdongnamhoc = this.gridViewHoatDong.GetRowCellValue(e.RowHandle, "hoatdong_namhoc").ToString().Trim();
                btnCapNhatHD.Enabled = true;
                if (checkTaikhoan(_hoatdongid) == "")
                {
                    btnXoaHD.Enabled = true;
                }
                else
                {
                    btnXoaHD.Enabled = false;
                }
            }
            else
            {
                btnCapNhatHD.Enabled = false;
                btnXoaHD.Enabled = false;

            }
        }

        private void btnCapNhatHD_Click(object sender, EventArgs e)
        {
            if (!frmCapNhatHD_isShown)
            {
                int temp = Int16.Parse(this._hoatdongid);
                int temp1 = Int16.Parse(this._hoatdongcap);
                frmCapNhatHD = new frmHoatDong(this, temp, _hoatdongten, _hoatdongThoigian, temp1, _hoatdongnoidung, _hoatdongbatbuoc, Int16.Parse(_hoatdonghocki), _hoatdongnamhoc);
                frmCapNhatHD.Text = "Cập nhật thông tin hoạt động";
                frmCapNhatHD_isShown = true;
                frmCapNhatHD.Show();
            }
            else
            {
                frmCapNhatHD.Select();
            }
        }

        private void btnXoaHD_Click(object sender, EventArgs e)
        {
            DialogResult rs = MessageBox.Show("Bạn muốn xóa hoạt động này", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (rs == DialogResult.Yes)
            {
                hd.delete(Int16.Parse(_hoatdongid), false);
                GridViewHoatdong(this.comboBoxNamhocHD.Text);
            }

        }
        private void cbxNamhoc()
        {
            DataTable tbchidoan = new DataTable();
            tbchidoan.Clear();
            comboBoxNamdoanvien.Items.Clear();
            comboBoxNamhocHD.Items.Clear();
            comboBoxNamHocLCTD.Items.Clear();
            tbchidoan = cd.SelectAllchidoan();
            string _temp = "";
            string code;
            if (tbchidoan.Rows.Count > 0)
            {

                foreach (DataRow row in tbchidoan.Rows)
                {
                    code = row["namhoc"].ToString();

                    if (_temp != code)
                    {
                        comboBoxNamdoanvien.Items.Add(code);
                        comboBoxNamhocHD.Items.Add(code);
                        comboBoxNamHocLCTD.Items.Add(code);
                        _temp = code;
                    }


                }
            }
        }

        private void btnThemLCTD_Click(object sender, EventArgs e)
        {
            if (!frmThemLCTD_isShown)
            {
                frmThemLCTD = new frmLopCamTinhDoan(this, -1, "", "");
                frmThemLCTD_isShown = true;
                frmThemLCTD.Show();

            }
            else
            {
                frmThemLCTD.Select();
            }
        }

        private void btnThemDP_Click(object sender, EventArgs e)
        {
            if (!frmThemDP_isShown)
            {
                frmThemDP = new frmDoanPhi(this);
                frmThemDP_isShown = true;
                frmThemDP.Show();
            }
            else
            {
                frmThemDP.Select();
            }
        }
        public void GridViewDoanphi()
        {
            DataTable dtAccount = new DataTable();
            dtAccount = dp.SelectAlldoanphi();
            dtAccount.Columns.Add("index", typeof(int));
            this.gridControlDoanphi.DataSource = dtAccount;
            for (int i = 0; i < this.gridViewDoanPhi.RowCount; i++)
            {
                this.gridViewDoanPhi.SetRowCellValue(i, "index", i + 1);
            }

        }
        public void GridViewdoanvien(string _namhoc)
        {
            try
            {
                DataTable dt = new DataTable();
                dt = hs_gv.SelectHocsinhChidoan(_namhoc);
                dt.Columns.Add("select", typeof(bool));
                dt.Columns.Add("index", typeof(int));
                dt.Columns.Add("chidoan", typeof(string));
                dt.Columns.Add("ladoanvien", typeof(bool));                
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["select"] = false;
                    dt.Rows[i]["index"] = i + 1;
                    dt.Rows[i]["chidoan"] = dt.Rows[i]["khoi"].ToString() + dt.Rows[i]["lop"].ToString();
                    if (dt.Rows[i]["ngayvaodoan"].ToString() == "")
                        dt.Rows[i]["ladoanvien"] = false;
                    else dt.Rows[i]["ladoanvien"] = true;
                }
                this.gridControlDoanVien.DataSource = dt;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }

        }
        //public static string CatChuoi(string s, int length)
        //{
        //    if (length <= 0) return "";

        //    else
        //    {
        //        if (s.Length < length) return s;
        //        else
        //        {
        //            //while (s[length - 1] != ' ')
        //            //{
        //            //    length++;
        //            //}
        //            return s.Substring(0, length);
        //        }
        //    }
        //}
        
        private void btnxuat_Click(object sender, EventArgs e)
        {
            if (comboBoxNamhocHD.Text != "")
            {
                DataTable dtAccount = new DataTable();
                dtAccount = hd.SelectAllhoatdongNamhoc(comboBoxNamhocHD.Text);
                dtAccount.Columns.Add("index", typeof(int));
                this.gridControlHoatDong.DataSource = dtAccount;
                for (int i = 0; i < this.gridViewHoatDong.RowCount; i++)
                {
                    this.gridViewHoatDong.SetRowCellValue(i, "index", i + 1);
                }
            }
        }

        #region hiện tabpage Chi đoàn
        private void itemChiDoan_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
        {
            this.xtraTabChiDoan.PageVisible = true;
            loadYear(this.comboBoxCDNamHoc);
            loadGridChiDoan();
        }

        private void loadGridChiDoan()
        {
            tblchidoan cd = new tblchidoan();
            DataTable tb = new DataTable();
            tb = cd.SelectAllchidoan();
            tb.Columns.Add("chidoan", typeof(string));
            tb.Columns.Add("stt", typeof(int));
            tb.Columns.Add("trangthaistr", typeof(string));
            for (int i = 0; i < tb.Rows.Count; i++)
            {
                tb.Rows[i]["stt"] = i + 1;
                tb.Rows[i]["chidoan"] = tb.Rows[i]["khoi"].ToString() + tb.Rows[i]["lop"].ToString();
                if (bool.Parse(tb.Rows[i]["trangthai"].ToString()))
                    tb.Rows[i]["trangthaistr"] = "Sử dụng";
                else tb.Rows[i]["trangthaistr"] = "Đã bị xóa";
            }
            this.gridControlChiDoan.DataSource = tb;
        }
        #endregion

        //Thêm chi đoàn
        private void btnThemCD_Click(object sender, EventArgs e)
        {
            if (!frmThemCD_isShown)
            {
                frmThemCD = new frmChiDoan(this);
                frmThemCD_isShown = true;
                frmThemCD.Show();
            }
            else
            {
                frmThemCD.Select();
            }
        }

        //Xóa chi doàn
        private void btnXoaCD_Click(object sender, EventArgs e)
        {
            //lấy chỉ số các row được select
            int[] rowselected = this.gridViewChiDoan.GetSelectedRows();
            if (rowselected.Length > 0)
            {
                DialogResult rs = MessageBox.Show("Bạn thực sự muốn xóa các Chi đoàn được chọn ?!", "Xác nhận", MessageBoxButtons.OKCancel);
                try
                {
                    if (rs == DialogResult.OK)
                    {
                        tblchidoan cd = new tblchidoan();
                        foreach (int index in rowselected)
                        {
                            cd.update(int.Parse(this.gridViewChiDoan.GetRowCellValue(index, "chidoan_id").ToString()), false);
                        }
                        //cập nhật lại grid chi đoàn trên frmMain
                        loadGridChiDoan();
                        MessageBox.Show("Xóa chi đoàn thành công !!!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
        }

        //Kích hoạt sử dụng lại Chi đoàn đã bị xóa
        private void btnCapNhatCD_Click(object sender, EventArgs e)
        {
            int[] rowselected = this.gridViewChiDoan.GetSelectedRows();
            if (rowselected.Length > 0)
            {
                DialogResult rs = MessageBox.Show("Bạn thực sự muốn sử dụng lại các Chi đoàn được chọn ?!", "Xác nhận", MessageBoxButtons.OKCancel);
                try
                {
                    if (rs == DialogResult.OK)
                    {
                        tblchidoan cd = new tblchidoan();
                        foreach (int index in rowselected)
                        {
                            cd.update(int.Parse(this.gridViewChiDoan.GetRowCellValue(index, "chidoan_id").ToString()), true);
                        }
                        loadGridChiDoan();
                        MessageBox.Show("Kích hoạt chi đoàn thành công !!!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
        }

        //load năm học cho combobox
        public void loadYear(ComboBox combobox)
        {
            combobox.Items.Clear();
            for (int i = 2000; i < 2030; i++)
                combobox.Items.Add(i + "-" + (i + 1));
        }

        //cài đặt chức vụ cho Đoàn viên được chọn trong danh sách
        private void btnCaiDatChucVu_Click(object sender, EventArgs e)
        {
            if (!frmCaiDatCV_isShown)
            {
                int[] dvselected = this.gridViewDoanVien.GetSelectedRows();
                int id = int.Parse(this.gridViewDoanVien.GetRowCellValue(dvselected[0], "id").ToString());
                string name = this.gridViewDoanVien.GetRowCellValue(dvselected[0], "hoten").ToString();
                frmCaiDatCV = new frmCaiDatChucVu(this, id, name);
                frmCaiDatCV_isShown = true;
                frmCaiDatCV.Show();

            }
            else
            {
                frmCaiDatCV.Select();
            }
        }

        //hiển thị đoàn viên trong năm học
        private void comboBoxNamdoanvien_TextChanged(object sender, EventArgs e)
        {
            GridViewdoanvien(this.comboBoxNamdoanvien.Text);
        }

        //hiển thị hoạt động trong năm học
        private void comboBoxNamhocHD_SelectedValueChanged(object sender, EventArgs e)
        {
            GridViewHoatdong(this.comboBoxNamhocHD.Text);
        }

        //Chuyển sinh hoạt đoàn
        private void btnChuyenSinhHoat_Click(object sender, EventArgs e)
        {
            if (!frmChuyenSinhHoatDoan_isShown)
            {
                int[] id = this.gridViewDoanVien.GetSelectedRows();
                frmChuyenSinhHoatDoan = new frmChuyenSinhHoat(this,id, this.comboBoxNamdoanvien.Text);
                frmChuyenSinhHoatDoan_isShown = true;
                frmChuyenSinhHoatDoan.Show();
            }
            else
            {
                frmChuyenSinhHoatDoan.Select();
            }
        }

        //chọn đoàn viên để thao tác
        /*private void gridViewDoanVien_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
        {
            if (this.gridViewDoanVien.SelectedRowsCount < 1)
            {
                this.btnChuyenSinhHoat.Enabled = false;
                this.btnThuongPhat.Enabled = false;
            }
            else
            {
                this.btnChuyenSinhHoat.Enabled = true;
                this.btnThuongPhat.Enabled = true;
            }
        }*/
        //cập nhật lớp cảm tình đoàn
        private void btnCapNhatLCTD_Click(object sender, EventArgs e)
        {
            if (!frmCapNhatLCTD_isShown)
            {
                int id = int.Parse(this.gridViewLCTD.GetRowCellValue(int.Parse(this.gridViewLCTD.GetSelectedRows()[0].ToString()), "lopcamtinhdoan_id").ToString());
                string ngaytochuc = this.gridViewLCTD.GetRowCellValue(int.Parse(this.gridViewLCTD.GetSelectedRows()[0].ToString()), "ngaytochuc").ToString();
                string ghichu = this.gridViewLCTD.GetRowCellValue(int.Parse(this.gridViewLCTD.GetSelectedRows()[0].ToString()), "lopcamtinhdoan_id").ToString();
                frmCapNhatLCTD = new frmLopCamTinhDoan(this, id, ngaytochuc, ghichu);
                frmCapNhatLCTD_isShown = true;
                frmCapNhatLCTD.Show();

            }
            else
            {
                frmCapNhatLCTD.Select();
            }
        }
        //update data trên grid form main
        public void GridViewLopCamTinhDoan()
        {
            tbllopcamtinhdoan lctd = new tbllopcamtinhdoan();
            tblHocsinh_lopcamtinhdoan hs = new tblHocsinh_lopcamtinhdoan();
            DataTable dt = new DataTable();
            dt = lctd.SelectAlllopcamtinhdoan();
            dt.Columns.Add("stt", typeof(int));
            dt.Columns.Add("thamgia", typeof(int));
            dt.Columns.Add("comat", typeof(int));
            int i = 0;
            foreach (DataRow r in dt.Rows)
            {
                DataTable tb = new DataTable();
                tb = hs.SelectHSCuaLCTD(int.Parse(r["lopcamtinhdoan_id"].ToString()));
                int _comat = 0;
                foreach (DataRow ro in tb.Rows)
                {
                    if (bool.Parse(ro["comat"].ToString()))
                        _comat++;
                }
                i++;
                r["stt"] = i;
                r["thamgia"] = tb.Rows.Count;
                r["comat"] = _comat;
            }
            this.gridControlLCTD.DataSource = dt;
        }

        //khi row được chọn trên grid view lớp cảm tình đoàn thay đổi
        private void gridViewLCTD_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
        {
            if (this.gridViewLCTD.SelectedRowsCount > 0)
                this.btnXetHSThamGiaLCTD.Enabled = true;
            else this.btnXetHSThamGiaLCTD.Enabled = false;
        }

        //Hiện form thêm điểm thưởng hay phạt cho đoàn viên
        private void btnThuongPhat_Click(object sender, EventArgs e)
        {
            try
            {
                int dem = 0;
                string id = "";
                //lấy những đoàn viên được chọn
                for (int i = 0; i < this.gridViewDoanVien.RowCount; i++)
                {
                    if (bool.Parse(this.gridViewDoanVien.GetRowCellValue(i, "select").ToString()) && bool.Parse(this.gridViewDoanVien.GetRowCellValue(i, "ladoanvien").ToString()))
                    {
                        dem++;
                        id = id + "-" + this.gridViewDoanVien.GetRowCellValue(i, "id").ToString();
                    }
                }
                if(id!="")
                {
                    id = id.Remove(0, 1);
                }
                string[] aid = id.Split('-');
                if (!frmThuongPhat_isShown)
                {
                    frmThuongPhat = new frmDiemThuongPhat(this, aid, this.comboBoxNamdoanvien.Text);
                    frmThuongPhat_isShown = true;
                    frmThuongPhat.Show();
                }
                else
                {
                    frmThuongPhat.Select();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }

        }
        //close tab
        private void xtraTabMain_CloseButtonClick(object sender, EventArgs e)
        {
            DevExpress.XtraTab.XtraTabControl tabControl = sender as DevExpress.XtraTab.XtraTabControl;
            DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs arg = e as DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs;
            (arg.Page as DevExpress.XtraTab.XtraTabPage).PageVisible = false;
        }

    }
}

